apply plugin: 'idea'
apply plugin: 'eclipse'

group = '{{groupId}}'
version = '{{artifactVersion}}'

buildscript {
    repositories {
        mavenCentral()
    }
}

repositories {
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'maven-publish'

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11

// Some text from the schema is copy pasted into the source files as UTF-8
// but the default still seems to be to use platform encoding
tasks.withType(JavaCompile) {
    configure(options) {
        options.encoding = 'UTF-8'
    }
}
javadoc {
    options.encoding = 'UTF-8'
}

publishing {
    publications {
        maven(MavenPublication) {
            artifactId = '{{artifactId}}'
            from components.java
        }
    }
}

task execute(type:JavaExec) {
   main = System.getProperty('mainClass')
   classpath = sourceSets.main.runtimeClasspath
}

task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}


ext {
    swagger_annotations_version = "1.5.22"
    jackson_version = "2.10.4"
    jakarta_annotation_version = "1.3.5"
    junit_version = "4.13.1"
    {{#threetenbp}}
    threetenbp_version = "2.9.10"
    {{/threetenbp}}
}

dependencies {
    implementation "io.swagger:swagger-annotations:$swagger_annotations_version"
    implementation "com.google.code.findbugs:jsr305:3.0.2"
    implementation "com.fasterxml.jackson.core:jackson-core:$jackson_version"
    implementation "com.fasterxml.jackson.core:jackson-annotations:$jackson_version"
    implementation "com.fasterxml.jackson.core:jackson-databind:$jackson_version"
    implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$jackson_version"
    implementation "org.openapitools:jackson-databind-nullable:0.2.1"
    implementation "jakarta.annotation:jakarta.annotation-api:$jakarta_annotation_version"
    {{#threetenbp}}
    implementation "com.github.joschi.jackson:jackson-datatype-threetenbp:$threetenbp_version"
    {{/threetenbp}}
    testImplementation "junit:junit:$junit_version"
}
